The present invention relates generally to data communications and more particularly relates to a method of reducing the size of code memory required in embedded systems such as ATM devices.
Currently, there is a growing trend to make Asynchronous Transfer Mode (ATM) networking technology the base of future global communications. ATM has already been adopted as a standard for broadband communications by the International Telecommunications Union (ITU) and by the ATM Forum, a networking industry consortium.
ATM originated as a telecommunication concept defined by the Comite Consulatif International Telegraphique et Telephonique (CCITT), now known as the ITU, and the American National Standards Institute (ANSI) for carrying user traffic on any User to Network Interface (UNI) and to facilitate multimedia networking between high speed devices at multi-megabit data rates. ATM is a method for transferring network traffic, including voice, video and data, at high speed. Using this connection oriented switched networking technology centered around a switch, a great number of virtual connections can be supported by multiple applications through the same physical connection. The switching technology enables bandwidth to be dedicated for each application, overcoming the problems that exist in a shared media networking technology, like Ethernet, Token Ring and Fiber Distributed Data Interface (FDDI). ATM allows different types of physical layer technology to share the same higher layerxe2x80x94the ATM layer.
ATM uses very short, fixed length packets called cells. The first five bytes, called the header, of each cell contain the information necessary to deliver the cell to its destination. The cell header also provides the network with the ability to implement congestion control and traffic management mechanisms. The fixed length cells offer smaller and more predictable switching delays as cell switching is less complex than variable length packet switching and can be accomplished in hardware for many cells in parallel. The cell format also allows for multi-protocol transmissions. Since ATM is protocol transparent, the various protocols can be transported at the same time. With ATM, phone, fax, video, data and other information can be transported simultaneously.
ATM is a connection oriented transport service. To access the ATM network, a station requests a virtual circuit between itself and other end stations, using the signaling protocol to the ATM switch. ATM provides the User Network Interface (UNI) which is typically used to interconnect an ATM user with an ATM switch that is managed as part of the same network.
Currently, most ATM devices, e.g., switches, edge devices, etc., comprise embedded systems with a limited amount of memory and processing facilities. These systems typically incorporate multiple types of memory. Two types of memory that are present in most of these systems include RAM, e.g., static, dynamic, etc., and NVRAM, e.g., EEPROM, EPROM, Flash, etc. The RAM portion typically holds program application code and data while the NVRAM portion typically holds device configuration data and application code.
One of the major and often critical resources of an embedded system is the size of the memory, i.e., ROM (non-volatile) and RAM (volatile), which is primarily used to store program code. As the functionality of modem ATM equipment is constantly expanding, the corresponding code size expands along with it. This, however, is pitched against the desire to keep the cost and complexity of products as low as possible. Although the cost semiconductor memory steadily drops over time, the memory portion of ATM devices can potentially be significant.
A block diagram illustrating a prior art ATM device coupled to a management device is shown in FIG. 1. The management/control device 12 is coupled to the ATM embedded system 14 which represents any type of ATM device such as a switch or edge device. For the majority of the time the ATM embedded system operates on its own with no intervention required from a user or external device. There are times, however, when it is necessary to perform maintenance or administration operations on the ATM device. To accomplish this, the management/control device 12 is connected to the ATM device, such as via a front panel RS-232 serial connection. The software in the management device sends requests to the ATM system which processes the request and replies with a response.
It is important to note that all the software code that the ATM system needs is incorporated within its memory. This is regardless of the frequency of execution of any particular portion of software application code. Thus, the system is oblivious to the fact that some code is used over and over on a very frequent basis or whether a portion of application software code is used seldom, only once or not at all. Not all the application software code, however, of the embedded system is used all the time. A significant part of the code is used only once during the lifetime of the system.
An example of application code that is used seldom or one time only is conversion software that converts device configuration data from one version to another, such as after a software upgrade. Another example is the user interface and interactive user dialog software that permits a user, e.g., network administrator, to communicate with and configure the ATM device. The ATM embedded device must incorporate all the software required to perform this task, regardless of the low frequency of its use.
The present invention is a system for reducing the memory requirements of an ATM device by utilizing one or more temporary code uploads to bring needed portions of application code into memory of the ATM embedded system on a temporary basis. The present invention functions to divide the entire code necessary for operation of the ATM device into at least two categories: (1) application code that is seldom used or code used only once and (2) all other application code. The application code that is seldom used or used only once is removed from the memory of the ATM embedded system and placed in a device external to the system. This serves to significantly reduce the memory requirements of the ATM device, such as by up to 40% in come cases depending on the size of the various code portions.
Examples of seldom used or only once used software include configuration conversion software for version updating; local management software (excluding SNMP software); and debugging and testing software.
In a first embodiment, the seldom or once only used application software for the ATM embedded system is stored on a separate external software server. A plurality of application code portions are stored in the memory of the software server. Requests from the LMA device trigger a request for application code from the ATM device to the software server. The requested code is uploaded to the ATM device and execution continues. A request is generated and sent to the LMA device.
In a second embodiment, the LMA device and the software server are implemented on the same machine. In a third embodiment, a plurality of software servers are distributed throughout the network. The LMA device may or may not be combined with a software server. In either case, the ATM device requests an application code portion from any of the software servers available to it in the network.
There is provided in accordance with the present invention, in an Asynchronous Transfer Mode (ATM) network including at least one ATM embedded device and at least one local management and administration (LMA) device, a method of reducing the code related memory requirements of the ATM device, the method comprising the steps of removing seldom used or once used application code from the ATM device and storing it on an external software server, receiving a request from the LMA device by the ATM device which requires the execution of application code located in the software server, generating and sending a code request from the ATM device to the software server corresponding to application code needed on the ATM device, uploading the application code from the software server to the ATM device, executing the application code on the ATM device and generating and sending a response from the ATM device to the LMA device.
The network includes a plurality of distributed software servers and the step of generating and sending the code request comprises the step of generating and sending the code request to one of the plurality of distributed software servers. In addition, the LMA device and the software server can be implemented on the same machine. The application code stored on the software server can comprise configuration conversion software for version updating, local management software or debug and test software.